package com.sun.test;

public class ArrayMaximum {
    public static void main(String[] args) {
        /*2.利用Java的Math类的random()方法，编写函数得到0到n之间的随机数，n是参数。
        提示： int num=(int)(n*Math.random());
        并找出产生50个这样的随机数中最大的、最小的数，并统计其中大于等于60的有多少个。*/
        //1.声明一个长度为50的数组，每个元素在1-100之间
        int [] arr=getArray(100);
        //2.遍历数组
        print(arr);
        //查找数组中的最大值
        int max=getMax(arr);
        //查找数组元素中的最小值
        int min=getMin(arr);
        //打印输出数组中的最值
        System.out.println("\n数组元素中的最大值是：" + max + "数组元素中的最小值是：" + min);
        //统计数组中大于或者等于60的数字有几个
        int count=getCount(arr,60);
        //打印输出数组中元素大于或者等于60的个数
        System.out.println("数组中大于或者等于60的元素有：" + count + "个");

    }


    /**
     * 创建数组，并且初始化50个数据
     * @param n 产生的元素在0-100之间
     * @return 产生后的数组
     */
    public static int[] getArray(int n){
        int[] arr = new int[50];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=(int)(n*Math.random());
        }
        return arr;
    }

    /**
     * 遍历数组元素
     * @param arr 需要遍历的数组
     */
    public static void print(int[] arr){
        System.out.println("输出数组元素");
        for (int i = 0; i < arr.length; i++) {
            if(i%10==0){
                System.out.println();
            }
            System.out.print(arr[i] + "\t");
        }
    }

    /**
     * 获取数组中的最大值
     * @param arr 传递的数组
     * @return 数组中的最大值
     */
    public static int getMax(int[] arr){
        //默认第一个元素最大
        int max = arr[0];
        //将数据组中的每一个元素与第一个元素进行比较
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }

    /**
     * 获取数组中元素的最小值
     * @param arr 传递的数组
     * @return 数组中元素的最小值
     */
    public static int getMin(int[] arr){
        //默认第一个元素最小
        int min=arr[0];
        //将数组中的每一个元素与数组中的元素进行比较
        for (int i = 0; i < arr.length; i++) {
            if(min>arr[i]){
                min=arr[i];
            }
        }
        return min;
    }

    /**
     * 获取数组中大于或者等于60的个数
     * @param arr 数组
     * @param element 需要比较的元素
     * @return 大于或者等于60的个数
     */
    public static int getCount(int[] arr,int element){
        //声明一个计数器
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>=element){
                count++;
            }
        }
        /*for (int i : arr) {
            if(i>=60){
                count++;
            }
        }*/
        return count;
    }
}
